package com.fourthGroup.service;

import com.fourthGroup.model.Coupon;
import com.fourthGroup.model.UserCoupon;
import com.fourthGroup.utils.Result;

import java.util.List;

public interface CouponService {

    /**
     * 创建优惠券
     */
    Result<Coupon> createCoupon(Coupon coupon);

    /**
     * 获取优惠券列表
     */
    Result<List<Coupon>> listCoupons();

    /**
     * 获取优惠券详情
     */
    Result<Coupon> getCoupon(Long id);

    /**
     * 秒杀抢购优惠券
     */
    Result<Boolean> grabCoupon(Integer userId, Long couponId);

    /**
     * 处理抢购请求（供消息队列消费者调用）
     */
    Result<Boolean> processGrabCoupon(Integer userId, Long couponId);

    /**
     * 核销优惠券（使用优惠券）
     */
    Result<Boolean> useCoupon(Integer userId, Long couponId, String orderId);

    /**
     * 获取用户的优惠券
     */
    Result<List<UserCoupon>> getUserCoupons(Integer userId);

    /**
     * 检查库存并预热
     */
    void preHeatCouponStock(Long couponId);

} 